System and method for trap management and monitoring on wireless terminals

ABSTRACT

A wireless device and a method for providing remote trap management of the wireless device by which a management server remotely sets a trap whose trigger needs to be monitored. A method for providing remote trap management of a wireless device comprises receiving from a remote device a request to install a trap on the wireless device, installing the trap on the wireless device, generating trap status information upon occurrence of a trap and transmitting the trap status information to the remote device in response to the occurrence of the trap.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application claims the benefit of Provisional Application No.60/661,507, filed Mar. 15, 2005.

FIELD OF THE INVENTION

The present invention relates generally to remote trap management and inparticular, to a system for programming, monitoring and reporting of thestatus of trap execution on wireless data terminals.

BACKGROUND OF THE INVENTION

Generally, traps are software interrupts. For example, traps are specialinstructions that are embedded in programs that cause the program totransfer control to a trap handler routine or which are explicitlycalled when an exception occurs. Typically, after a trap is triggered,the trap handler routine is, executed and the control is transferredback to the program that caused the trap. Traps can also be explicitlyset so as to execute a trap handler when a specific condition is met.Since traps are embedded in programs, they cannot be easily changed byexternal means.

In wireless devices, there is a need to set traps to gather informationabout events due to certain conditions on the device. Not all traps canbe set a priori. Some of the traps have to be remotely set, i.e.,activated and the conditions for a trap trigger should be remotelyprogrammable. Unlike traditional systems, in wireless systems it doesnot suffice just to execute a trap handler locally. The result of theexecution of the trap handler caused by a trap trigger must be sent to aserver for purposes of diagnostics. Since wireless devices are resourceconstrained and bandwidth is at a premium, not every trap trigger needsto be sent to a management server.

For the various traps that can be set only a sub set of them needs to bemonitored and the results sent to an external management server. Justthe execution of the trap handler is not sufficient. A monitoring agenton the device should check if any of the traps have been triggered andthen at an appropriate time send the results to the management server.

Since there are many traps that can be set and monitored, a monitoringagent needs a structured way of enumerating the traps that havetriggered. A simple list of possible traps will be too inefficient. Thetraps have to be organized in a hierarchy of categories so that themanagement server can specify categories of interest. Within eachcategory, specific traps can be monitored.

Hence, there is a need to efficiently categorize the traps into severalclasses, and then monitor traps in each class on a wireless dataterminal and the according to a policy send the results of a trigger toa management server.

SUMMARY OF THE INVENTION

The present invention is a wireless device and method by which amanagement server remotely sets a trap whose trigger needs to bemonitored. A monitoring agent on the device traverses a trap definitiontree to check for triggered traps. For those traps that are enabled bythe remote server, the monitoring agent on the wireless data terminaldynamically transfers the trap status code to a management server underappropriate conditions.

One aspect of the invention is a method by which the management serverenables the trap to be set and enables the trap to be monitored. Thewireless data terminal, after verification of the server credentials,can install the trap along with the conditions under which the trapstatus needs to be sent to a management server. The conditions forsending the results may be temporal, spatial, device dependent, networkdependent or any combination there of.

Another aspect of the invention is the specification of the trap tree.The trap tree indicates a hierarchy of trap categories. The categoriescan be broadly defined based on device state, network state, applicationstate, device action, network action, or application action. Given thelists of traps implemented on the wireless data terminal, the traphandlers are programmed to enable the node based on the category of thetrap. For example, battery low or battery fully charged will beclassified as a device state trap. A similar trap that falls under thedevice state category is a memory full event. Examples of traps based onnetwork action include connection failure or a connection failure to anapplication specific server.

Yet another aspect of the invention is the definition of trap node thatis named and enabled when the corresponding event is triggered. Withineach category the type of trap is a node whose name indicates the typeof the trap and within each node the names of the trap administrationvariables and the trap payload. The trap payload defines the form andstructure of the trap status information that will be sent to amanagement server. An example of a trap node is a “device coverage” nodeand a trap is triggered when the device goes out of coverage. If thetrap is enabled, the monitoring agent on the device will send statusinformation in the trap payload whenever the device goes out ofcoverage. Another example of a trap node is a “roaming” node and a trapis triggered when the device roams away from the home network. Further,the conditions under which the payload is sent can be programmed aswell. Conditions include temporal (e.g., every two hours), spatial(e.g., at a given location) or based on the number of occurrence of traptriggers.

Yet another aspect of the invention is an efficient structure for thetrap payload. The trap status may be sent to the monitoring server in acompact form. The trap name or an identifier from a registry, along withthe timestamp and location stamp is sent to the server. Since the statuscould contain the execution of several traps, the payload contains achained structure of trap status information. The method furtherincludes a means to store the traps status as a tree structure to mirrorthe categories of the traps on the device.

BRIEF DESCRIPTION OF THE DRAWINGS

The included drawings illustrate the method and system used in remotetrap management. Along with the description, these drawings explain theinvention and novelty.

FIG. 1 is an exemplary diagram showing the overall system architecturethat consists of a device agent, trap tree, and a management server

FIG. 2 is an exemplary diagram illustrating the interaction between themanagement server and the wireless data terminal to program and set atrap remotely on a wireless data terminal

FIG. 3 is an exemplary diagram showing the interaction between thedevice agent and the management server in sending a sample trap payloadto the server

FIG. 4 is an exemplary format of a trap tree according to the presentinvention.

FIG. 5 is an exemplary flow diagram of a process of trap management andmonitoring.

DETAILED DESCRIPTION

Trap management includes over the air activation/deactivation of trapmonitoring and programming of trap generation conditions by means ofcommands sent from the monitoring server. Trap monitoring includeschecking the status of the set traps and generation of traps. Trapreporting includes packaging the status and attributes of any traps thatwere set and sending it to the monitoring server. The information aboutall the traps is maintained in a well-defined Trap management tree datastructure. The specification trap sub tree data structure defines thenodes of the tree and the semantics associated with the tree.

An example of an overall system architecture 100 in which he presentinvention may be implemented is shown in FIG. 1. System 100 includes adevice monitoring agent 102, a trap tree 104, applications 106, wirelessdevice 108, network 110, and a management server 112. Monitoring agent102, on device 108, checks if any of the traps have been triggered andthen at an appropriate time sends the results to the management server112 via the network 110. Since there are many traps that can be set andmonitored, monitoring agent 102 needs a structured way of enumeratingthe traps that have triggered. Trap tree 104 organizes the traps in ahierarchy of categories so that the management server 112 can specifycategories of interest. Within each category, specific traps can bemonitored. Applications 106 are among the entities that may triggertraps, or which may be interrupted by a trap.

Traps are status messages that are sent to the management server 112 bythe device 108 when trap generation conditions are met on any or all thenodes of the trap management tree. An example of this is shown in FIG.3. Traps are reported immediately after a condition associated with trapbecomes true. However, if the trap is enabled, the reporting conditionscan be set in such a way that the trap payload is sent to the managementserver only when certain conditions are satisfied. The conditions thatcould be set on a trap node could be, for example, a change in the TrapNode Attribute, reporting frequency, aggregate conditions (number oftrap status changes configured while setting the trap) or that adependent trap node status has changed. For example, a trap can be seton ‘Device Coverage Node’ to report status when coverage conditionschange, when a number, ‘K’, coverage changes have occurred, or to reportall coverage changes every 2 hours. A device agent that is monitoringthe conditions will set the trap trigger to be true. A series of trapscan be defined, not all of which need to be monitored. The number oftraps that are set may be independent of the number of traps that aremonitored. A trap-enabled directive can be set by a device agent toindicate that the status of the trap is of interest to the monitoringagent at the server. The specific traps to be monitored are sent ascommands from the management server to the device agent as illustratedin FIG. 2. In particular, management server 112 transmits commands 202specifying the traps that are to be monitored by device agent 102 todevice 108, where the information in command 202 is used to populatetrap tree 104.

An example of a trap tree 400 is shown in FIG. 4. Trap tree 400 includestrap nodes 402, trap administration variables 404, and trap payload 406.A trap node 402 defines the type of trap that can be set, the trapadministration variables 404 reflect the state of the trap, and the trappayload 406 is used to communicate that status of the trap to themonitoring server.

Turning to FIG. 3, the device agent 102 scans all the trap nodes in traptree 104 to check for the status of the traps. For those traps that haveTRAP₁₃ enabled property set to true and whose trap trigger has been set,a client event alert 302 is sent to management server 112. If needed,server 112 can then get the complete state of the system that generatedthe trap event. Appropriate traps can be set in trap tree 104 that allowfor reporting diagnostics and performance information to the server.These include:

-   -   Device Network Coverage (the states include No Coverage,        Emergency, Voice and Voice/Data)    -   Battery conditions    -   Memory conditions    -   SIM card insert/removal    -   Report on Application Install/Uninstall activity    -   Track voice calls for termination causes    -   Track durations of voice calls, voice/data calls    -   Track Network and Location changes    -   Install Failure    -   Download failure    -   APN Connect Failure    -   MMS Connect Failure    -   EMAIL Connect Failure    -   ROAMING Failure    -   Traps based on threshold

An example of a process 500 by which the management server enables thetrap to be set and by which the trap is monitored is shown in FIG. 5.Process 500 begins with step 502, in which the server sends commandsincluding trap setup information to the wireless device, as shown inFIG. 2. In step 504, the device agent uses the trap setup information toinstall the specified traps into the trap tree. The device agent, afterverification of the server credentials, installs the trap along with theconditions under which the trap status needs to be sent to themanagement server. The conditions for sending the results may betemporal, spatial, device dependent, network dependent or anycombination there of.

In step 506, the device agent monitors the state of the device, thestate of the network, the location of the device, etc. In step 508, atrap occurs. The trap tree indicates a hierarchy of trap categories. Thecategories can be broadly defined based on device state, network state,application state, device action, network action, or application action.Given the lists of traps implemented on the wireless data terminal, thetrap handlers are programmed to enable the node based on the category ofthe trap. For example, battery low or battery fully charged will beclassified as a device state trap. A similar trap that falls under thedevice state category is a memory full event. Examples of traps based onnetwork action include connection failure or a connection failure to anapplication specific server.

In step 510, the device agent determines that the monitored states matchone or more specified conditions under which trap result status is to betransmitted to the server. Within each category the type of trap is anode whose name indicates the type of the trap and within each node thenames of the trap administration variables and the trap payload. Thetrap payload defines the form and structure of the trap statusinformation that will be sent to the management server. An example of atrap node is a “device coverage” node and a trap is triggered when thedevice goes out of coverage. If the trap is enabled, the monitoringagent on the device will send status information in the trap payloadwhenever the device goes out of coverage. Another example of a trap nodeis a “roaming” node and a trap is triggered when the device roams awayfrom the home network. Further, the conditions under which the payloadis sent can be programmed as well. Conditions include temporal (e.g.,every two hours), spatial (e.g., at a given location) or based on thenumber of occurrence of trap triggers.

The trap status may be sent to the management server in a compact form.The trap name or an identifier from a registry, along with the timestampand location stamp is sent to the server. Since the status could containthe execution of several traps, the payload contains a chained structureof trap status information. The method further includes a means to storethe traps status as a tree structure to mirror the categories of thetraps on the device.

Although specific embodiments of the present invention have beendescribed, it will be understood by those of skill in the art that thereare other embodiments that are equivalent to the described embodiments.Accordingly, it is to be understood that the invention is not to belimited by the specific illustrated embodiments, but only by the scopeof the appended claims.

1. A method for providing remote trap management of a wireless device,comprising: receiving from a remote device a request to install a trapon the wireless device; installing the trap on the wireless device;generating trap status information upon occurrence of a trap; andtransmitting the trap status information to the remote device inresponse to the occurrence of the trap.
 2. The method of claim 1,wherein the remote device is a management server.
 3. The method of claim2, wherein the wireless device accepts the trap request only afterverifying a signature of the management server and transmits anacknowledgement to the management server after the trap is enabled. 4.The method of claim 1, wherein the trap status information istransmitted only when at least one condition is met.
 5. The method ofclaim 4, wherein the condition is based on at least one of a state ofthe wireless device, a state of a wireless communication network towhich the wireless device may be communicatively connected, a state oflinks between the wireless device and the network or other devices, atime, and a location of the wireless device.
 6. The method of claim 5,wherein the state of the wireless device comprises the existingresources of the wireless device.
 7. The method of claim 6, wherein theresources of the wireless device comprises at least one of a batterylevel of the wireless device, a memory condition of the wireless device,a condition of a SIM card of the wireless device, and a condition of anapplication on the wireless device.
 8. The method of claim 5, whereinthe state of a wireless communication network comprises at least one ofa type of coverage of the wireless device, a state of roaming of thewireless device, a type of the wireless communication network, and acost of data communication over the wireless communication network. 9.The method of claim 5, wherein the state of links comprises a receivedsignal strength.
 10. The method of claim 5, wherein the time comprises alocal clock time or a global time obtained from an external source. 11.The method of claim 5 wherein the location comprises a cell-ID, alocation area identifier, or physical location obtained from a GlobalPositioning System.
 12. The method of claim 1, wherein the trap isinstalled on the wireless device by storing information relating to thetrap in a tree structure in which nodes of the tree structure definetraps that can be set.
 13. The method of claim 12, wherein a node of thetree structure comprises a trap names, trap administration variables, atrap payload, and conditions defining when the trap payload is to betransmitted.
 14. The method of claim 13, further comprising: receiving arequest from the remote device to reprogram the trap administrationvariables, or the conditions defining when the trap payload is to betransmitted.
 15. The method of claim 13, wherein the trap statusinformation is generated by traversing the tree structure, collectingtrap status information from a plurality of nodes of the tree structure,and transmitting an aggregated payload to the remote device.
 16. Themethod of claim 1, further comprising: enabling a trap installed on thewireless device in response to a request to enable the trap receivedfrom the remote device.
 17. The method of claim 1, further comprising:receiving a request from the remote device to uninstall a previouslyinstalled trap.
 18. A wireless device comprising: means for receivingfrom a remote device a request to install a trap on the wireless device;means for installing the trap on the wireless device; means forgenerating trap status information upon occurrence of a trap; and meansfor transmitting the trap status information to the remote device inresponse to the occurrence of the trap.
 19. The wireless device of claim18, wherein the remote device is a management server.
 20. The wirelessdevice of claim 19, wherein the wireless device accepts the trap requestonly after verifying a signature of the management server and transmitsan acknowledgement to the management server after the trap is enabled.21. The wireless device of claim 18, wherein the trap status informationis transmitted only when at least one condition is met.
 22. The wirelessdevice of claim 21, wherein the condition is based on at least one of astate of the wireless device, a state of a wireless communicationnetwork to which the wireless device may be communicatively connected, astate of links between the wireless device and the network or otherdevices, a time, and a location of the wireless device.
 23. The wirelessdevice of claim 22, wherein the state of the wireless device comprisesresources of the wireless device.
 24. The wireless device of claim 23,wherein the resources of the wireless device comprises at least one of abattery level of the wireless device, a memory condition of the wirelessdevice, a condition of a SIM card of the wireless device, and acondition of an application on the wireless device.
 25. The wirelessdevice of claim 22, wherein the state of a wireless communicationnetwork comprises at least one of a type of coverage of the wirelessdevice, a state of roaming of the wireless device, a type of thewireless communication network, and a cost of data communication overthe wireless communication network.
 26. The wireless device of claim 22,wherein the state of links comprises a received signal strength.
 27. Thewireless device of claim 22, wherein the time comprises a local clocktime or a global time obtained from an external source.
 28. The wirelessdevice of claim 22 wherein the location comprises a cell-ID, a locationarea identifier, or physical location obtained from a Global PositioningSystem.
 29. The wireless device of claim 18, wherein the trap isinstalled on the wireless device by storing information relating to thetrap in a tree structure in which nodes of the tree structure definetraps that can be set.
 30. The wireless device of claim 29, wherein anode of the tree structure comprises a trap names, trap administrationvariables, a trap payload, and conditions defining when the trap payloadis to be transmitted.
 31. The wireless device of claim 30, furthercomprising: means for receiving a request from the remote device toreprogram the trap administration variables, or the conditions definingwhen the trap payload is to be transmitted.
 32. The wireless device ofclaim 30, wherein the trap status information is generated by traversingthe tree structure, collecting trap status information from a pluralityof nodes of the tree structure, and transmitting an aggregated payloadto the remote device.
 33. The wireless device of claim 18, furthercomprising: means for enabling a trap installed on the wireless devicein response to a request to enable the trap received from the remotedevice.
 34. The wireless device of claim 18, further comprising: meansfor receiving a request from the remote device to uninstall a previouslyinstalled trap.